package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.entity.Result;
import com.itheima.pojo.Menu;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 菜单 接口
 */
public interface MenuService {

    List<Menu> findMenuByUserName(String username);
    /**
     * 分页查询
     * @param currentPage
     * @param pageSize
     * @param queryString
     * @return
     */
    PageResult findPage(Integer currentPage, Integer pageSize, String queryString);

    /**
     * 查询父类菜单信息
     * @return
     */
    List<Menu> findAllParentMenu();

    /**
     * 通过id查询父类菜单路径信息
     * @param id
     * @return
     */
    String findPathById(Integer id);

    /**
     * 通过名称查询菜单是否存在
     * @param name
     * @return
     */
    Long findByName(String name);

    /**
     * 通过路径查询菜单是否存在
     * @param path
     * @return
     */
   /* Long findByPath(String path);*/

    /**
     * 通过优先级查询菜单是否存在
     * @param map
     * @return
     */
    Integer findByPriority(Map map);

    /**
     * 新增菜单
     * @param menu
     */
    void add(Menu menu);

    /**
     * 查询主菜单最大项
     * @return
     */
    String findMaxPath();

    /**
     * 通过id查询菜单信息
     * @param id
     * @return
     */
    Menu findById(Integer id);

    /**
     * 更新菜单
     * @param menu
     * @return
     */
    Result edit(Menu menu);

    /**
     * 删除菜单
     * @param id
     */
    Result delete(Integer id);

    Set<Menu> findAll();
}
